<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        // 思考如何实现map和filter的手写思路

        // map 给原数组中的每个元素都按顺序调用一次   生成一个新数组
        //把自己的map方法挂载在原型对象上
        //准备一个形参接受回调函数
        // Array.prototype.myMap = function (fn) {
        //     for(let i = 0; i < this.length; i++) {
        //         // console.log(this);
        //         fn(this[i], i, this)
        //     }
        // }

        // const arr = [1, 2, 3, 4]

        // // const arr1 = arr.map((currentValue, index, array) => {
        // //     console.log(currentValue);
        // // })
        // // console.log(arr1);

        // arr.myMap((currentValue, index, array) => {
        //     console.log(currentValue);
        //     console.log(index);
        //     console.log(array);
        // })


        // filter  创建给定数组一部分的浅拷贝，其包含通过所提供函数实现的测试的所有元素
        //把自己的filter方法挂载在原型对象上
        //准备一个形参接受回调函数
        Array.prototype.myFilter = function (fn) {
            for(let i = 0; i < this.length; i++) {
                fn(this[i], i, this)
            }
        }

        const arr = ['ikun', '华晨宇', '鹿晗']

        // const arr1 = arr.filter((element, index, array) => {
        //     console.log(element);
        // })

        arr.myFilter((element, index, array) => {
            console.log(element);
            console.log(index);
            console.log(array);
        })


    </script>
</body>
</html>